package com.ruoyi.ldzlsc.mapper;

import com.ruoyi.ldzlsc.domain.ScProductionOrder;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 生产订单Mapper接口
 *
 * @author ruoyi
 * @date 2023-03-13
 */
public interface ScProductionOrderMapper {
    /**
     * 查询生产订单列表
     *
     * @param scProductionOrder 生产订单
     * @return 生产订单集合
     */
    public List<ScProductionOrder> selectScProductionOrderList(ScProductionOrder scProductionOrder);

    /**
     * 新增生产订单
     *
     * @param scProductionOrder 生产订单
     * @return 结果
     */
    public int insertScProductionOrder(ScProductionOrder scProductionOrder);

    /**
     * 修改生产订单
     *
     * @param scProductionOrder 生产订单
     * @return 结果
     */
    public int updateScProductionOrder(ScProductionOrder scProductionOrder);

    /**
     * 删除生产订单
     *
     * @param productionOrderId 生产订单主键
     * @return 结果
     */
    public int deleteScProductionOrderById(Long productionOrderId);

    /**
     * 批量删除生产订单
     *
     * @param productionOrderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteScProductionOrderByIds(Long[] productionOrderIds);

    /**
     * 更新订单状态为已完成
     * @param orderId
     * @param username
     * @return
     */
    public int updateStatusToComplete(@Param("orderId") Long orderId, @Param("username") String username);
    
    /**
     * 根据ID查询生产订单
     * 
     * @param productionOrderId 生产订单ID
     * @return 生产订单
     */
    public ScProductionOrder selectScProductionOrderById(Long productionOrderId);
    
    /**
     * 根据ID查询生产订单状态
     * 
     * @param productionOrderId 生产订单ID
     * @return 状态
     */
    public String selectProductionOrderStatusById(Long productionOrderId);
    
    /**
     * 更新生产订单状态
     * 
     * @param productionOrderId 生产订单ID
     * @param status 状态
     * @return 结果
     */
    public int updateProductionOrderStatus(@Param("productionOrderId") Long productionOrderId, @Param("status") String status);
}
